cmake_minimum_required(VERSION 3.10)

set (CMAKE_CXX_STANDARD 17)

# 设置项目名称和版本
project(minitools VERSION 1.0 LANGUAGES CXX RC)

# 设置 C++ 标准为 C++17
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 启用 Unicode 字符集（定义 UNICODE 和 _UNICODE）
add_definitions(-DUNICODE -D_UNICODE)

# 配置调试/发布编译选项
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
    add_compile_options(/Zi /Od /MTd /W4 /WX- /Zc:forScope /RTC1- /GR /Gd /Oy- )  # 调试模式
else()
    add_compile_options(/O2 /MT /W3 /Zc:forScope)           # 发布模式
endif()

# 定义项目源文件


# 定义头文件目录
include_directories(
    include/
)

# 定义资源文件（图标、版本信息、清单等）
set(RESOURCES
	${PROJECT_SOURCE_DIR}/gui/*.rc
)
file(GLOB_RECURSE mintools_src
        ${PROJECT_SOURCE_DIR}/gui/*.cpp
        ${PROJECT_SOURCE_DIR}/gui/*.h
        )
		
# 生成可执行文件，并包含资源文件
add_executable(minitools 
    ${mintools_src}
)

# 链接 Windows 核心库和 GDI+
target_link_libraries(minitools PRIVATE
    WindowsApp.lib   # 简化 Win32 应用链接（Windows SDK 8+）
    gdiplus.lib      # GDI+ 图形库
    comctl32.lib     # 通用控件库
)

# 配置资源编译器选项（解决中文乱码问题）
set(CMAKE_RC_FLAGS "${CMAKE_RC_FLAGS} -c65001")  # 强制使用 UTF-8 编码

# 可选：集成 OpenCV（若需要图像处理）
# find_package(OpenCV REQUIRED)
# if(OpenCV_FOUND)
#     include_directories(${OpenCV_INCLUDE_DIRS})
#     target_link_libraries(minitools PRIVATE ${OpenCV_LIBS})
# endif()

# 安装目标（可选）
install(TARGETS minitools DESTINATION bin)